字节跳动 后端开发-技术中台一二三面面经

前情提要:21届，辣鸡本科，项目巨水，啥都不会

-------------------------------------------------------
一面+二面（连着2h左右）：
1.问项目
2.vector的扩容怎么实现的
3.迭代器删除所用的函数
4.vector用迭代器删除后迭代器会不会失效
5.什么情况适合用vector什么情况适合用list
6.c++5种迭代器都是啥
7.讲下const
8.const int *p和int *const p区别
9.不同位置的static变量的区别
10.static一般什么时候用
11.static编译器层面的实现(??????)
share_ptr
12.如果要自己设计一个share_ptr，要包含哪些方法
13.new和malloc区别
14.malloc底层实现
15.c++程序的内存分布
16.介绍c++多态
17.虚函数的底层实现
18.构造函数可不可以是虚函数
19.为什么构造函数不能是虚函数
20.析构函数可不可以是虚函数
21.虚函数表在什么时候初始化
22.tcp报文的首部有哪些字段
23.https的加密
24.怎么保持登录状态(sessioncookie)
25.session的底层实现
26.虚拟内存共享内存驻留内存
27.静态链接和动态链接
28.使索引生效，sql查询该语句怎么写
29.用过什么中间件(无)
30.堆排时间复杂度，稳不稳定
31.快排稳不稳定

二面时的智(数)力(学)题
和面试官抛硬币，一人一次，面试官先抛，先抛到正面朝上的胜，问面试官获胜的概率
有一个随机数生成器，生成0的概率是p，生成1的概率是1-p，要求用这个生成器实现等概率生成0和1
写代码
------------------------------------------------------------------------------
一面
给一串数字串，将数字串转化为ip地址，给出所有可能结果(简单dfs)
bst权值第k小
-------------------------------------------------------------------------------
二面
给一段未缩进的xml代码，输出代码缩进的结果，标签内无内容不缩进，如
<a><b></b><cc>ccc</cc></a>
输出
	<a>
  <b></b>
  <cc>
    ccc
  </cc>
</a>

---------------------------------------------------------------------------
三面(30min)
开场先是几分钟的闲聊，然后正式开始：
面试官：计算机基础都擅长哪些？
我：操作系统...吧
面试官：那来问问你操作系统
我：(？大意了，该说数据结构的)
物理内存和虚拟内存区别
物理地址和虚拟地址区别
为什么要用虚拟地址
如果只有2gb内存，有一个4gb大小的程序，怎么运行？
(接上一题)如果不使用虚拟内存，能不能运行成功？为什么能运行成功，怎么做到的？
介绍一下协程
僵尸进程是什么
文件描述符是什么
有一个等概率生成0-4的随机数生成器，用这个生成器实现等概率生成0-6

代码题：
给一个字符串，求最多包含k种字符的最长子串的长度
给一棵二叉树，一个集合，集合内是一些二叉树上的点，求集合内所有点的lca
